Brought to you by EarthWeb
IT Library Logo

Click Here!
Click Here!


Search the site:
 
EXPERT SEARCH -----
Programming Languages
Databases
Security
Web Services
Network Services
Middleware
Components
Operating Systems
User Interfaces
Groupware & Collaboration
Content Management
Productivity Applications
Hardware
Fun & Games

EarthWeb Direct EarthWeb Direct Fatbrain Auctions Support Source Answers

EarthWeb sites
Crossnodes
Datamation
Developer.com
DICE
EarthWeb.com
EarthWeb Direct
ERP Hub
Gamelan
GoCertify.com
HTMLGoodies
Intranet Journal
IT Knowledge
IT Library
JavaGoodies
JARS
JavaScripts.com
open source IT
RoadCoders
Y2K Info

Previous Table of Contents Next


6-3
Client/Server: An Architectural Overview

LAWRENCE K. COOPER

Client/server is both the buzzword and the major technology thrust of the mid- to late 1990s. There seem to be more client/server products, tools, services, consultants, seminars, and courses than there are problems to be solved. However, most organizations approach client/server computing from a hardware or a tools perspective rather than an architectural one. This chapter lays the foundation for understanding client/server from an architectural perspective. Client/server concepts are discussed in the context of the evolution of computer technology. The chapter concludes with a comparison of some of the advantages and disadvantages of client/server architectures and traditional architectures.

The steps in the evolution of computer hardware technology led to a proliferation of smaller, cheaper, and faster systems. This proliferation of systems, in turn, led to the need to connect them. The networking technologies that started at the Advanced Research Projects Agency, or ARPA (coupled with other networking architectures such as Novell and DECnet), eventually made their way into mainstream computing environments. The advances in networking technologies, more than any others, have facilitated the ability to decouple software architectures from hardware architectures. This decoupling of software and hardware has made the client/server revolution possible.

CLIENT/SERVER CONCEPTS

Thus far, there have been four architectural phases in the evolution of computer hardware and software technologies:

  Centralized systems architectures.
  Remote processing architectures.
  Distributed processing architectures.
  Client/server architectures.

The first three phases are covered adequately in most books on the origins of computer industry and are not discussed in this chapter, although they are explained in summary form in Exhibit 6-3-1.


Exhibit 6-3-1.  Evolution of Systems and Applications Architectures

Client/Server Systems Architecture Phase

The advent of the microcomputer in the early to mid-1980s, more than any other hardware advance, served as the catalyst for rethinking computer hardware and software configurations. The microcomputer's low cost and relative physical portability revealed myriad new configuration possibilities. Although still generally connected to corporate mainframes and minicomputers through terminal emulation software, the microcomputer could perform some application functions independently. The availability of commercial software such as word processing packages, spreadsheets, and other applications allowed some large and medium-size organizations to use off-the-shelf solutions. Furthermore, they were able to design systems to meet specific local needs that did not involve the enormous costs of mainframe solutions. Managers began thinking of delivery times in terms of months instead of the years required to deliver a mainframe application.

Network technologies were developed for connecting microcomputer to one another to share data and applications. While the microcomputer was developing as a market of its own in the mid-1980s, many vendors and organizations were turning toward UNIX and the Transmission Control Protocol/Internet Protocol (TCP/IP)on workstations. There also were many advances in workstation hardware as systems got smaller and faster. These advances in networking and hardware facilitated the development of applications that were distributed between server and client machines. Each machine could provide portions of the solution. Data could be transferred first as files and later as messages between systems and applications using defined protocols such as the remote procedure call (RPC). Sun Microsystems, Inc., developed the transport-independent RPC (TIRPC), which allowed applications to be segmented across different machines. Servers moved from being merely resource servers to being client servers as well. Heterogeneity in hardware and software was arriving. Exhibit 6-3-2 shows a client/server systems architecture.


Exhibit 6-3-2.  Client/Server Systems Architecture

By the late 1980s, the design of computer systems ranged from mainframe-centric to network-centric and every variation in between. This has caused confusion and led to extensive debate regarding the optimum configuration. The following discussion is a synopsis of where client/server is now and where it is going. Any client/server solution must be defined primarily in terms of software rather than hardware architectures.

Mainframe-Centric Client/Server

For organizations that have been slow to get away from the venerable mainframe, the mainframe-centric view allows for ease of migration. Their existing host applications investment is protected in the short term as only client applications development is required. They need only add client front ends to their applications to replace dumb terminals. The data stream between the client and server application remains unchanged. Of course, they can add new functional capabilities to the client (e.g., graphical interfaces, error checking, and error handling). Single client interfaces can be used to access multiple hosts. Also, new client development tools allow for a certain amount of platform independence for the client software.

The mainframe-centric model of client/server (shown in Exhibit 6-3-3) is primarily a hardware-based rather than a software-based architecture. This is the traditional definition of a client as a single-user workstation and a server as a multi user multitasking computer system. Because little of the application actually needs to be segmented, the hardware definition works.


Exhibit 6-3-3.  Mainframe-centric Client/Server Model


Previous Table of Contents Next

footer nav
Use of this site is subject certain Terms & Conditions.
Copyright (c) 1996-1999 EarthWeb, Inc.. All rights reserved. Reproduction in whole or in part in any form or medium without express written permission of EarthWeb is prohibited. Please read our privacy policy for details.